Wireless networking today is dominated by devices operating according to IEEE 802.11 protocols, such as 802.11b (“WiFi”). The 802.11 protocols provide for two distinct types of wireless networking: infrastructure and ad hoc. In an infrastructure network, a single device—usually a “wireless access point”—acts as a central server for providing managed services such as providing Internet Protocol addresses (via, e.g., DHCP) and IP address discovery and resolution (via, e.g., DNS). The wireless access point further is typically connected via physical connection to the Internet, and provides routing capabilities enabling wirelessly networked devices to access the Internet via the access point. All network communications in an infrastructure network pass through the wireless access point.
In an ad hoc network (or “computer to computer” network), networked computing devices communicate directly with one another in peer-to-peer fashion. Although one computer might set up the network, no centrally managed services exist. For this reason, ad hoc networks are typically small and closed, without access to external services.
The ability to quickly and easily set up an ad hoc wireless network is desirable in a number of scenarios. One simple example of such a scenario is when two or more users come together with their wireless enabled laptops computers; they may wish to participate and collaborate together for activities such as file sharing in a “peer-to-peer” fashion, without requiring a centralized server or hub to manage the network. In these situations, it is possible for the users to create an ad hoc network according to an IEEE 802.11 wireless protocol. However, although the 802.11 protocol provides the ability to create an ad hoc network, current software does not exist to ease and quicken the process; it is currently an extremely difficult, error-prone and time consuming process.
Furthermore, once set up, it is also currently difficult to “deconstruct” such a network, so that each participating computer is restored to its previous networking state. As a result, users of ad hoc networks may experience problems subsequently connecting to other wireless networks, or may find their computers attempting to reconnect to the ad hoc network at a later time, thereby disconnecting a new network connection.
Another shortcoming of existing ad hoc network creation and management tools is revealed when one computer in an ad hoc network has access to the Internet; other computers participating in the ad hoc network presently have no easy way of taking advantage of this accessibility.
Some existing computer operating systems include an Internet connection sharing (ICS) feature. This feature has been exclusively used by computing devices containing two network adapters. Typically, one network adapter is connected to a LAN or another computer; the other network adapter is connected to a WAN or the Internet. By invoking the ICS feature, other computers connected to the device (by the LAN or directly) are permitted to access the WAN or Internet. The ICS feature typically operates through a number of embedded networking components, such as DHCP and DNS services, but those embedded components have not historically been separable from the general ICS feature. Thus, if an application wished to access only one of the ICS components, it needed to be able to access the entire suite of ICS components.
However, the suite of ICS components has not been made available to devices containing only one network adapter. Thus, a computer containing only one network adapter on existing systems cannot avail itself of the embedded components of the ICS feature.